import { acceptHMRUpdate, defineStore } from "pinia";
import type {KeyValue} from "~/types";

export const useTagsStore = defineStore("tags", () => {
    const tags=ref<{[key:string]:any}>({});
    const addTag=(key:string,value:any)=>tags.value[key]=value
    const removeTag=(key:string)=>delete tags.value[key]
    const setTags=(value:{[key:string]:any})=>tags.value=value
    const clearTags=()=>tags.value={}
    const setTitle=(key:string,title:string)=> {
        tags.value[key].title=title
        tags.value[key].meta.title=title
    }
    const hasTag=(key:string)=>tags.value[key]!==undefined
    return {
        tags,
        clearTags,
        setTags,
        addTag,
        removeTag,
        hasTag,
        setTitle,
    }
},{persist:true})

if (import.meta.hot){
    import.meta.hot.accept(acceptHMRUpdate(useTagsStore, import.meta.hot));
}